home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Dev / gcc263-src.lha / gcc-2.6.3 / config / m68k / tower.h < prev    next >
C/C++ Source or Header  |  1994-11-10  |  4KB  |  110 lines

  1. /* Definitions of target machine for GNU compiler.
  2.    Copyright (C) 1990, 1994 Free Software Foundation, Inc.
  3.  
  4.    Written by Robert Andersson, International Systems, Oslo, Norway.
  5.    Please send bug reports, questions and improvements to ra@intsys.no.
  6.  
  7.    For NCR Tower 32/4x0 and 32/6x0 running System V Release 3.
  8.    I don't have access to 200/700/800/850 machines, so I don't know if it
  9.    works on those as well.  It shouldn't be far from it however.
  10.    The hardware floating point support is completely untested, as I do
  11.    not have access to a machine with a 6888x FPU in it.
  12.    It does not work on the System V Release 2 based OS releases.  Making it
  13.    work will not be easy, due to the silly way in which stack expansion is
  14.    implemented in the OS.
  15.  
  16.    This file is included in tower-as.h.
  17.    Do *NOT* include this file directly.
  18.  
  19.  
  20. This file is part of GNU CC.
  21.  
  22. GNU CC is free software; you can redistribute it and/or modify
  23. it under the terms of the GNU General Public License as published by
  24. the Free Software Foundation; either version 2, or (at your option)
  25. any later version.
  26.  
  27. GNU CC is distributed in the hope that it will be useful,
  28. but WITHOUT ANY WARRANTY; without even the implied warranty of
  29. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  30. GNU General Public License for more details.
  31.  
  32. You should have received a copy of the GNU General Public License
  33. along with GNU CC; see the file COPYING.  If not, write to
  34. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  35.  
  36.  
  37. #include "m68k/m68k.h"
  38.  
  39.  
  40. /* See m68k.h.  5 means 68020 with no 68881.  */
  41.  
  42. #define TARGET_DEFAULT 5
  43.  
  44. /* Don't try using XFmode.  */
  45. #undef LONG_DOUBLE_TYPE_SIZE
  46. #define LONG_DOUBLE_TYPE_SIZE 64
  47.  
  48. /* Names to predefine in the preprocessor for this target machine.  */
  49.  
  50. #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_200 -Asystem(unix) -Asystem(svr3) -Acpu(m68k) -Amachine(m68k)"
  51.  
  52. #if 0  /* It is incorrect to test these symbols.
  53.       They describe the host, not the target.
  54.       It should not matter which model is specified.  */
  55. #ifdef tower32_600
  56. #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_600 -Asystem(unix) -Asystem(svr3) -Acpu(m68k) -Amachine(m68k)"
  57. #endif
  58. #ifdef tower32_700
  59. #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_700 -Asystem(unix) -Asystem(svr3) -Acpu(m68k) -Amachine(m68k)"
  60. #endif
  61. #ifdef tower32_800
  62. #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_800 -Asystem(unix) -Asystem(svr3) -Acpu(m68k) -Amachine(m68k)"
  63. #endif
  64. #ifdef tower32_850
  65. #define CPP_PREDEFINES "-Dunix -Dtower32 -Dtower32_850 -Asystem(unix) -Asystem(svr3) -Acpu(m68k) -Amachine(m68k)"
  66. #endif
  67. #endif
  68.  
  69. /* The startfiles and libraries depend on the -p and -m68881 options.
  70.    The Tower does not support the -pg option.  */
  71.  
  72. #define LINK_SPEC                                              \
  73. "%{p:%{m68881:-L/usr/lib/fp/libp} -L/usr/lib/libp}             \
  74.  %{m68881:-L/usr/lib/fp}"
  75.  
  76. #define LIB_SPEC \
  77. "%{shlib:-lc_s} -lc crtend.o%s crtn.o%s"
  78.  
  79. #define STARTFILE_SPEC \
  80. "%{p:mcrt1.o%s} %{!p:crt1.o%s} crtbegin.o%s"
  81.  
  82. /* Use mem* functions, recognize #ident lines.  */
  83.  
  84. #define TARGET_MEM_FUNCTIONS
  85. #define IDENT_DIRECTIVE
  86.  
  87. /* Every structure and union's size must be a multiple of two bytes.  */
  88.  
  89. #define STRUCTURE_SIZE_BOUNDARY 16
  90.  
  91. /* All register names should have a leading % character.  */
  92.  
  93. #undef REGISTER_NAMES
  94. #define REGISTER_NAMES \
  95. {"%d0", "%d1", "%d2", "%d3", "%d4", "%d5", "%d6", "%d7",                      \
  96.  "%a0", "%a1", "%a2", "%a3", "%a4", "%a5", "%a6", "%sp",                      \
  97.  "%fp0", "%fp1", "%fp2", "%fp3", "%fp4", "%fp5", "%fp6", "%fp7"};
  98.  
  99. #undef REGISTER_PREFIX
  100. #define REGISTER_PREFIX "%"
  101.  
  102. #undef IMMEDIATE_PREFIX
  103. #define IMMEDIATE_PREFIX
  104.  
  105. /* We do not want leading underscores.  */
  106.  
  107. #undef ASM_OUTPUT_LABELREF
  108. #define ASM_OUTPUT_LABELREF(FILE,NAME)  \
  109.   fprintf (FILE, "%s", NAME)
  110.